<?php

namespace Common\Model;

use Think\Model;

/**
 * 社区计数模型
 */
class BbsCountModel extends Model {

    const BBS_COUNT_KEY = 'tmp:bbs:';       // 社区计数信息缓存键名

    // 默认缓存字段
    private static $default = [
        'focus' => 0,
        'docs' => 0,
        'tz' => 0,
        'hf' => 0,
        'visit' => 0
    ];

    /**
     * 获取指定社区的附加计数数据
     * @param $bid
     * @return mixed
     */
    public static function get($bid){
        $key = self::BBS_COUNT_KEY.$bid;
        return S($key);
    }

    /**
     * 更新社区计数数据
     * @param        $bid int 社区ID
     * @param string $name string 更新的键名
     * @param bool   $add bool 是增加还是减少
     * @param int    $num int 增加减少的数值
     * @return bool
     */
    public static function update($bid, $name, $add = true, $num = 1){
        $key = self::BBS_COUNT_KEY.$bid;
        $data = S($key) ? : self::$default;
        if($add){
            $data[$name] += $num;
        }else{
            $data[$name] -= $num;
        }
        S($key, $data);
        return true;
    }

    public static function clearCache($bid){
        $key = self::BBS_COUNT_KEY.$bid;
        S($key, null);
    }

}